
C
文章平均质量分 62
ゞωáиɡホ辛鴻ゾ
这个作者很懒,什么都没留下…
展开
-
*p=a[0] 引发的问题
*p=a[0] //将 a[0]的值赋给bai到p所指向的位du置。p=&a[0] //将 a[0]的地址赋给p则,如果:zhiint a[10];int *p;*p=a[0]; //1p=&a[0]; //22句恒正确,1句则有可能引dao发内存非法访问错误。例:void main(){int a[10];int *p=NULL;*p=a[0]; //100%发生内存非法错误p=&a[0];}void main(){int a[10];int转载 2020-10-07 02:03:36 · 2076 阅读 · 0 评论 -
关于结构体中的结构体想用指针调用出现的问题(未解决)
以下会出现错误说s不是class1的成员变量:‘s’ : is not a member of ‘class1’ #include "stdio.h" int main() { struct student{ int age; int stu_class; }; struct clas...原创 2019-03-21 17:31:55 · 1113 阅读 · 0 评论 -
结构体成员的引用->(箭头)和 .(点)
关于结构体成员的引用有这样的规律:箭头(->):左边必须为指针;点号(.):左边必须为实体。那么如果一个结构体指针引用一个成员,这个成员又是一个结构体(并且是一个实体),那么如果要引用这个成员的成员要怎么办呢?经过实验发现,依然遵循上面的规则即:箭头左边必须是指针,实体一定要用点号引用。for example C->student.ageeg.一开始都用箭头即c->s...转载 2019-03-21 16:27:51 · 5655 阅读 · 1 评论 -
struct和typedef struct
struct和typedef struct分三块来讲述: 1 首先://注意在C和C++里不同 在C中定义一个结构体类型要用typedef: typedef struct Student { int a; }Stu; 于是在声明变量的时候就可:Stu stu1;(如果没有typedef就必须用struct Student stu1;来声明) ...转载 2019-03-20 21:23:34 · 136 阅读 · 0 评论 -
c语言结构体struct所占字节数
c语言结构体struct所占字节数并不是把所有成员的大小加起来就行了https://blog.youkuaiyun.com/qq_41068271/article/details/83446623转载 2019-03-20 20:36:53 · 1730 阅读 · 0 评论 -
指针变量先定义后赋值,打印输出时会出现问题
#include <stdio.h>int main(){ char a[100]="ゞωáиɡホ辛鴻ゾ"; char *p = a; printf("size p=%d\nsizeof a=%d\n",sizeof p, sizeof a);} 以上可以正确打印输出size p=4sizeof a=100以下打印输出无效,原因为解决#include &l...原创 2019-03-20 20:31:36 · 965 阅读 · 3 评论 -
sizeof是一个关键字并不是一个函数
sizeof int ,结果为4,说明 sizeof说明他不是一个函数。sizeof(int )是关键字,为什么分开标记,比方 int i;int i,j;使用空格、逗号区分关键字和操作对象, 请测试 int(i),你很惊奇的发现这句话竟然可以编译通过没有报错,这句话的作用是相当于 int i,原因如下,int i,我们从原理上分析这句话,空格起的是一个分割的作用,有用区分变量和变量类型。 i...转载 2019-03-20 20:25:25 · 1972 阅读 · 0 评论 -
gets和scanf()
gets()函数用来从标准输入设备(键盘)读取字符串直到回车结束, 但回车符不属于这个字符串。其调用格式为:1gets(s);其中s为字符串变量(字符串数组名或字符串指针)。 gets(s)函数与scanf("%s", s)相似, 但不完全相同, 使用scanf("%s", s)函数输入字符串时存在一个问题, 就是如果输入了空格会认为输入字符串结束,空格后的字符将作为下一个输入...转载 2019-03-20 11:03:16 · 665 阅读 · 0 评论 -
数组的大小应该比它将要实际存放的最长字符串多一个元素,从而存放'\0'
一、用一维字符数组存放字符串 c语言本身并没有设置一种类型来定义字符串变量,字符串的存储完全依赖于字符数组,但字符数组又不等于是字符串变量 c语言对字符串的约定:字符串借助字符型一维数组来存放,并以字符‘\0’作为字符串结束标志 c语言中表示字符串常量的约定:c语言 中没有字符串...转载 2019-03-20 10:42:42 · 1668 阅读 · 2 评论 -
syntax error : missing ';' before 'type'
syntax error : missing ‘;’ before ‘type’vc++6.0 在编译c的时候会出错原因是变量声明放在了函数之后,把其调到函数之前就可以了转载 2019-03-18 21:49:01 · 881 阅读 · 0 评论 -
'123'非法但可用
定义一个字符串数组,‘123’赋值给其中一个元素,得到的会是3而不是1,像printf("%c\n",‘804’);输出的是4.其中原因可能是因为 字符常量只能包括一个字符,'ab’是非法的,但却可行,这样会让b把a给替换掉。...原创 2019-03-18 21:58:49 · 170 阅读 · 0 评论 -
位运算符有时候会转换成二进制进行运算
2 && 3 = 1 && 1 = 1而2^6 = 0000 0010 ^ 0000 0110 = 0000 0100 = 42&3 = 0000 0010 & 0000 0011 = 0000 0010 = 2原创 2019-03-18 22:10:03 · 389 阅读 · 0 评论 -
getch();getche();getchar();
1.getchar();从键盘读取一个字符并输出,该函数的返回值是输入第一个字符的ASCII码;若用户输入的是一连串字符,函数直到用户输入回车时结束,输入的字符连同回车一起存入键盘缓冲区。若程序中有后继的getchar();函数,则直接从缓冲区逐个读取已输入的字符并输出,直到缓冲区为空时才重新读取用户的键盘输入。2.getch();接受一个任意键的输入,不用按回车就返回。该函数的返回值是所输入字...转载 2019-03-18 22:15:57 · 156 阅读 · 0 评论 -
C语言的未初始化的数组的值为什么是随机的
突然想起来前几天同学问我为什么没有初始化的数组的值是随机的,发现这个困惑自己也是存在的,所以自己总结的心得.首先,并不是所有未初始化的数组的值都是随机的.对于没有初始化的数组,分两种情况:(1)全局数组,也就是定义在main函数外面的数组,元素的默认值是全部为0的(2)局部数组,定义在函数内部的数组,其值默认是随机的.#include <stdio.h>#define L...转载 2019-03-19 20:15:37 · 1526 阅读 · 0 评论 -
数组名a+1和&a+1的区别
C/C++里面的数组名字会退化为指针,所以数组名a实际指的是数组的第一个元素的地址。而数组名作为指针来讲有特殊性,它正在它所指向的内存区域中,&a的值和a的数值是相同的(可以输出观察一下),但是类型和意义不同。而指针的加法操作和指向的数据类型密切相关。比如:int a[10]; a就相当于int *,如果是对它加1(a + 1)是相当于a + 1 * sizeof(int)。但是&am...转载 2019-03-19 21:38:25 · 397 阅读 · 0 评论