❶ c语言 如何输出指针所指向空间的大小
C语言无法输出指针所指向的空间的大小!
一般,我们获取一个变量所占内存空间的方法为:sizeof(变量名或类型名),如:
int a;
int aa[10];
int *p=aa;
printf("sizeof(int)=%d\n", sizeof(int) ); //现在的机器一般为32位或64位机,int类型占四个字节,所以输出4
printf("sizeof( a )=%d\n", sizeof(a) ); //输出4
printf("sizeof( aa )=%d\n", sizeof(aa) ); //输出4*10=40
printf("sizeof(p)=%d\n", sizeof(p) );//输出4 ?见下面说明
printf("sizeof(int *)=%d\n", sizeof(int *) );//输出4 ?见下面说明指针变量定义:用来存储内存地址的变量。指针变量中存储的是内存地址数据(一个整型数),而不是真正的数据,真正的数据是在地址中存放的。所以,指针变量实际上就是个整型变量,用sizeof命令去获取任意类型的指针变量都会得到4。
指针变量存储的是一个存储空间的首地址,究竟这个空间有多大,可以存储多少个数据,这是分配空间时所决定的。单独看一个地址值,是看不出其空间大小的。如:
int
a;
int
aa[10];
int
*p
;
//定义一个指针变量
p=aa
;
//指向数组aa,aa的数据空间是40字节,10个整数
p=&a;
//指向一个整型变量,它的存储空间是4字节,一个整数
❷ 在C语言中如何输出空格
空格可以直接输入,例如System.out.println(" ");而如果用String表示那些符号的话,空格直接就是 就行。
\ 反斜杠' 单引号'
" 双引号"
uxxxx 以十六进制指定Unicode字符输
dxxx 以八进制指定Unicode字符输出
倒退一个字符
f 换页
换行
光标移至行首
跳格(一个TAB键)
(2)c语言输出空间扩展阅读
运算符是一些特殊的符号,主要用于数学函数、一些类型的赋值语句和逻辑比较方面。特殊字符的表示方法:
回车('u000D')
d数字等价于[0-9]
D非数字等价于[^0-9]
s空白符号[ x0Bf ]
S非空白符号[^ x0Bf ]
e Escape
一个单词的边界
B一个非单词的边界
G前一个匹配的结束
❸ C语言 字符串的输出,为什么输出那么多‘烫’呢
输出"烫烫烫烫"是因为vc会自动把未用函数的局部变量空间按字节全部初始化为CC。
而定义的字符数组空间不够,所以就占用了那部分不属于自己的空间,因为cout输出char*是要遇到空字符才停止的,所以便把那些垃圾都打出来了。
即是说在最后没有字符串结束标志'