C语言输出时输出1703808

Python036

C语言输出时输出1703808,第1张

在不加打括号的情况下,for循环只作用在其后紧跟着的第一条语句,所以printf是在for循环执行完以后才被执行在最后一次for循环判断中,k等于5,于是k不小于5,退出循环,而a[0-4]是你声明的变量,a[5]只是一块没被声明的内存区域,所以输出乱码

include<stdio.h>

main()

{

int i

int *p

printf("please input the number:\n")

scanf("%d",&i)

p=&i /*将变量i的地址赋给指针变量*/

printf("the result1 is: %d\n",&i)//输出的是i的地址. 这个值随机,而且可能每次运行不一样.

printf("the result1 is: %d\n",*p)//输出的是i的值.

p++ /*地址加1,这里的1并不代表一个字节*/

printf("the result2 is: %d\n",p)//输出自加后的p值, 也就是之前的&i值, 加上sizeof(int)

printf("the result2 is: %d\n",*p)//这里是越界操作, p已经指向了一个未知区域, *p值随机, 可能崩溃.

printf("the result2 is :%d\n",&(i+1))//&是取变量地址, 只能对变量操作,不能对表达式取地址.因为表达式没有地址.

}

#include int main(){ int iscanf("%d",&i)printf("个位数:%d\n",i%10)printf("十位数:%d\n",i/10%10)printf("百位数:%d\n",i/100)return 0}