C语言小白学习C语言的记录1
一、scanf一次性接收连续的数字
1.已知数量,且个数较少:scanf("%d%d%d",&a&b&c);
2.已知数量,但数量较多:for(int i=0;i<n;i++){scanf("%d",&a[i]);}
3.不知道数量,如:1 2 3 4\n    
  while(1){
        scanf("%d",&a);
        Insert(&la,i,a);
        i++;
        char c=getchar();
        if(c=='\n'){
            break;
        }
   }
二、数组的大小不确定的时候如何创建数组
int* b = (int*)malloc(n*sizeof(int));
三、使程序停止只有输入一个enter的时候才能够继续
#include <stdlib.h>  添加这个库
在需要停止的位置添加:system("pause");
四、C语言分别通过变量名还有指针来访问结构体当中的对象
      结构体成员依据结构体变量类型的不同,一般有2种访问方式,一种为直接访问,一种为间接访问。直接访问应用于普通的结构体变量,间接访问应用于指向结构体变量的指针。直接访问使用结构体变量名.成员名,间接访问使用(*结构体指针名).成员名或者使用结构体指针名->成员名。相同的成员名称依靠不同的变量前缀区分。
struct SIMPLE
{
    int a;
    char b;
};
//声明结构体变量s1和指向结构体变量的指针s2struct SIMPLE s1, *s2;
//给变量s1和s2的成员赋值,注意s1.a和s2->a并不是同一成员
s1.a = 5;
s1.b = 6;
s2->a = 3;
s2->b = 4; 
五、&取址和指针
&可以取出来一个变量在内存当中的地址,指针是一个变量其中存储的是某一个变量的地址。
通过如下程序可以看出来这一点:
#include <stdio.h>
int main()
{
    int a=0;
    int* p=&a;
    printf("%d %d",&a,&p);//显示变量a的地址还有指针p所在的地址
    printf("%d %d",&a,p);//显示变量a的地址还有指针p所存的地址
}
六、C语言当中指向同一个数组的的两个指针相减会得到数组元素的下标差而不是地址差
下面程序也给出了地址差计算的方法
int main()
{
int* a=(int*)malloc(10*sizeof(int));
int* p1=&a[6];
int* p2=&a[7];
printf("元素差:%d 地址差:%d",p2-p1,(unsigned int)p2-(unsigned int)p1);
}
七、不要试图将一个空指针放入函数当中对指针进行赋值,如下程序编译可以通过,但是运行会报错
#include <stdio.h>
void A(int* a)
{
    int b=10;
    a=&b;
}
int main(){
    int* a;
    A(a);
    printf("a = %d, b = %d\n", *a);
    return 0;
}
上面的程序无法对指针a实现赋值,因为函数A是通过值传递将指针a的值传递到A当中的,改变形式参数的值不会改变指针a的值

C语言学习中遇到的小问题(一)的更多相关文章

  1. JavaScript语言学习中的注意事项

    javascript: 基于浏览器 基于对象 事件驱动 脚本语言 由: javascript: ECMAscript(ES) DOM文档对象模型 BOM浏览器对象模型,三部分组成 使用js的三种方式 ...

  2. C语言学习中容易模糊的一些概念

    1.什么叫分配内存 操作系统把某一块内存空间的使用权利分配给该程序 2.释放内存 操作系统把分配给该程序的内存空间的使用权利收回,该程序就不能再使用这块内存空间 注:释放内存空间并不是把这块内存的数据 ...

  3. Python学习中的一些小例子

    这篇文章包括用Python编写的斐波那契数列,三位数的水仙花数和百钱买百鸡的基础代码 斐波那契数列: ''' def hanshu(n): n_1 = 1 n_2 = 1 m = n sumn = 0 ...

  4. 20155224聂小益 - 我的技能与C语言学习

    20155224聂小益 - 我的技能与C语言学习 预备作业2 ● 你有什么技能比大多人(超过90%以上)更好? 我认为我可能有些技能身边有的人比较少有,但是要是超过90%以上我实在不敢保证.毕竟厉害的 ...

  5. 记录Python学习中的几个小问题

    记录Python学习中的几个小问题,和C#\JAVA的习惯都不太一样. 1.Django模板中比较两个值是否相等 错误的做法 <option value="{{group.id}}&q ...

  6. Java 打印金字塔 or 打印带数字的金字塔 (Java 学习中的小记录)

    Java 打印金字塔 or 打印带数字的金字塔 (Java 学习中的小记录) 作者:王可利(Star·星星) 效果图: 代码如下: class Star8 { public static void m ...

  7. Java 需要记得、了解的关键词 (Java 学习中的小记录)

    Java 需要记得.了解的关键词 (Java 学习中的小记录)     作者:王可利(Star·星星) 总结:本次随笔,仅且拿来平时翻阅记忆用

  8. C语言中的调试小技巧

    C语言中的调试小技巧 经常看到有人介绍一些IDE或者像gdb这样的调试器的很高级的调试功能,也听人说过有些牛人做工程的时候就用printf来调试,不用特殊的调试器.特别是在代码经过编译器一些比较复杂的 ...

  9. R语言学习笔记——C#中如何使用R语言setwd()函数

    在R语言编译器中,设置当前工作文件夹可以用setwd()函数. > setwd("e://桌面//")> setwd("e:\桌面\")> s ...

随机推荐

  1. nodejs前端开发环境安装

    1.       nodejs安装 要求:node版本6.2.0及以上,npm版本3.8.9及以上 Nodejs安装包地址: 2.    在rTools上下载并安装git 3.    在rTools上 ...

  2. Go语言规格说明书 之 结构体类型(Struct types)

    go version go1.11 windows/amd64 本文为阅读Go语言中文官网的规则说明书(https://golang.google.cn/ref/spec)而做的笔记,介绍Go语言的 ...

  3. Mess it up!搞乱代码

    Mess it up! 作者: Laruence(   ) 本文地址: http://www.laruence.com/2009/01/07/656.html 转载请注明出处 恩,这段代码还能再乱点, ...

  4. OneNET麒麟座应用开发之七:控制采样电机

    气体采样采用主动抽取气体的方式保证充足而平稳的气流,所以我们采用气泵抽取气体来完成. 1.设计概述 客户对这部分要求能够设定电机的速度,但并不需要动态调节.对电机的控制有很多方式,我们采用比较简单的方 ...

  5. Linux 快速删除已输入的命令

    从输入模式到命令模式: 按”:“到最后一行,再按ctrl+z 就好了 history 显示命令历史列表 ↑(Ctrl+p) 显示上一条命令 ↓(Ctrl+n) 显示下一条命令 !num 执行命令历史列 ...

  6. 用Python实现Excel的读写

    一.读excel文件的简单示例 #!/usr/bin/env python # -*- coding:utf-8 -*- import xlrd from xlrd.book import Book ...

  7. LeetCode(39):组合总和

    Medium! 题目描述: 给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合. candidates ...

  8. 并发之AQS原理(三) 如何保证并发

    并发之AQS原理(三) 如何保证并发 1. 如何保证并发 AbstractQueuedSynchronizer 维护了一个state(代表了共享资源)和一个FIFO线程等待队列(多线程竞争资源被阻塞时 ...

  9. Struts2的动态Action和全局跳转视图以及配置各项默认值

    1:Struts2的默认访问后缀是.action(特别需要注意的是改了配置文件web.xml或者struts.xml需要重启服务器) 2:Struts2中常用的常量介绍:<!-- 一:全局配置 ...

  10. 记一次Oracle分区表错误:ORA-14400: 插入的分区关键字未映射到任何分区

    https://blog.csdn.net/xdyzgjy/article/details/42238735