www.zhnq.net > C语言指针编程例题

C语言指针编程例题

scanf()函数读入数据后,会将最后的空白符(<space>、<Tab>和<CR>)留在输入缓冲区,如 int a; char str[100]; scanf("%d%s",&a,str);用 23 asd<CR>响应时,3前面的空格和3与a之间的空格被当作分隔符读入后丢弃,而最后的<CR>仍

数组指针(也称行指针) 定义 int (*p)[n];()优先级高,首先说明p是一个指针,指向一个整型的一维数组,这个一维数组的长度是n,也可以说是p的步长.也就是说执行p+1时,p要跨过n个整型数据的长度.如要将二维数组赋给一指针,应这

*p 是取 指针p的地址; 这个地址如果只是定义了 如 char *p 这样而未被赋值.那麽这时*p的值应该是由windows给其分配的0-64K之间的一个随机值. 而这个p后面你被str1赋值. 那么这时的p的内容是str1这个字符数组的首地址. 由于数组类型是连续

函数指针告诉CPU下一步需要执行哪里的代码的指针, 一数组十分相像.#include <stdio.h> void function(int i, double d) //一个函数的声明 { printf("函数运行, %d, %lf\n", i, d); } void AnotherFunction(int i, double d) //另外一个函数声明 { printf

int main() { double a[20]; double result = 0.0; int i = 0; double fact = 3.2; double val = 1.5; double *ptrdouble = &a[0]; //输出所有数组值 for (i = 0; i { *(ptrdouble + i) = i*fact+val; printf("%f ",*(ptrdouble + i)); } ptrdouble = &a[10]; //输出后是个值 for (i = 0; i { result = result + *(ptrdouble+i); } printf("%f",result); };

大概是这个意思 int a[10]; int *p=a; 输入的时候用指针p scanf("%d",(p+i));

void swap(int*,int*)函数接受的是一个指针,就算你可以理解成它拷贝了值,是,它拷贝了&x,&y到*a,*b里了,但是,你没有发现,*a其实还是指向x吗?这样一交换,不就结了吗.举个例子.假设x的地址为0x0069857(乱编的),然后,传递进函数的时候,它只是传值,并没有传引用,然后呢,int *a把0x0069857复制为自己的值.这样一来,还记得解引用吗?*(a)=*(0x0069857)=x,因此t=*a不是就可以翻译成t=x;x=y;y=t;}不是就交换了吗?????

p=a,p指向a[0],p+1,p指向a[1],p+2,p指向a[2],依次类推.用一个循环录入,其实就是录入a.

#include<stdio.h> #include<conio.h> #include<string.h> main() { char s1[100] = {0}; char s2[100} = {0}; printf("input s1:\n" ); scanf( "%s",s1 ); printf("input s2:\n" ); scanf( "%s",s2 ); char *p = strstr( s1,s2 ); printf( "开始的地址%ld",p ); getch(); }

1. #include <stdio.h> int main() { int a=1,b=2,c=3; int *p=&c; printf("变量C为%d\n",*p); p=&b; printf("变量B为%d\n",*p); p=&a; printf("变量A为%d\n",*p); return 0;} 2. #include <stdio.h> int *max(int *a,int *b){ return *a>*b ? a : b;} int

网站地图

All rights reserved Powered by www.zhnq.net

copyright ©right 2010-2021。
www.zhnq.net内容来自网络,如有侵犯请联系客服。zhit325@qq.com