c語言指針代碼
A. 【c語言】關於指針。 代碼如下,求解
首先,奉勸樓主不要再糾纏 i++*++i 諸如此類的代碼了!
這樣的代碼極其 不規范 ,它的行為是 未定義 的!!!
不同的編譯器,可以有不同的運算結果!
但有一點可以確定:執行之後,i值增加了2!而中間的計算過程未定義!
TurboC、BorlandC:輸出 5
VS2010(Visual C++ 11):輸出 9
gcc:未作測試,你可以試試看
詳細請查看我的博客文章:http://hi..com/chenqa08/blog/item/108ea51cc7e6fa4efa19b841.html
B. 求C語言指針代碼
用指針法實現冒泡法排序的C語言程序如下
#include<stdio.h>
void bubblesort(int *a,int n){
int i,j,t;
for(i=0;i<n-1;i++){
for(j=0;j<n-1-i;j++){
if(*(a+j)<*(a+j+1)){
t=*(a+j);
*(a+j)=*(a+j+1);
*(a+j+1)=t;
}
}
}
}
int main(){
int i,a[]={32,98,51,28,12,38,57,43,115,21};
bubblesort(a,10);
for(i=0;i<10;i++){
printf("%d ",a[i]);
}
return 0;
}
C. 請教C語言 指針數組 代碼
#include<stdio.h>
intd[1024];
intmain()
{
intN;
scanf("%d",&N);
for(inti=1;i<=N;i++)scanf("%d",&d[i]);
int*itor=d;
intMax=-1,*u;
for(inti=1;i<=N;i++)
{
itor++;
if(*itor>Max)
{
Max=*itor;
u=itor;
}
}
intt=*itor;
*itor=*u;
*u=t;
itor=d;
intMin=1000000;
for(inti=1;i<=N;i++)
{
itor++;
if(*itor<Min)
{
Min=*itor;
u=itor;
}
}
t=*itor;
*itor=*u;
*u=t;
itor=d;
for(inti=1;i<=N;i++)
{
itor++;
printf("%d",*itor);
}
return0;
[您的採納是我們前進的不竭動力]
D. C語言程序設計 指針
變數前面加&代表取出這個變數的地址,&又叫取址符
指針前面加*代表取出,指針所指向的內存里的數據(值),*又叫取值符
p是指針,n是變數
計算機解析代碼是從右到左,所以
*&n = *(&n)
&n代表取出n在內存中的地址,取址
*&n,就是對&n在取值
*&n和n是等價的
所以下面的都是等價的
*p = *&n
*p = n
p = &n
就好比小明住在番茄花園
小明家的地址就是番茄花園
番茄花園里的值就是小明
n代表小明,
&n就是小明的家(番茄花園)
*&n就好比問小明的家裡住著誰,答案依然是小明
就好比我老婆的老公還是我。
再來理解一下*p
p是一個指針,p就是一個地址
p就是番茄花園
*p就是再問,番茄花園里住著誰
就好比有一個人叫小壯的,想找小明聚聚,但是不知道小明家的地址,他就找來和小明最要好的朋友小強,通過小強的他給了你一個字條,上面寫著小明的地址,這張字條就是指針,指針就是一個記錄地址東東,如果哪天小明搬家了,這張字條也就作廢了,所以指針指向的是一個內存地址,如果這個地址被釋放了,這個指針也就作廢了,因為指針就是一張帶著地址的紙。
E. C語言指針編程
代碼文本:
#include "stdio.h"
#define N 10
#define F(x) ((x)>0 ? (x) : -(x))
int f(int *p){
int i,mini;
for(mini=0,i=1;i<N;i++)
if(F(p[mini]) > F(p[i]))
mini=i;
printf("%d ",p[mini]);
return mini;
}
int main(int argc,char *argv[]){
int a[N],i;
printf("Enter the %d integers... ",N);
for(i=0;i<N;scanf("%d",a+i++));
printf("The subscript is %d ",f(a));
return 0;
}
F. 急求C語言代碼,文件 指針 字元串
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
staticchar**dictTable=NULL;
staticcharsearchString[255];
staticintnum=0;
staticvoidreadFromFile(char*filename);
staticvoidwriteToFile(char*filename,intID,intEID,intFID);
staticintgetID(void);
staticintgetEID(void);
staticintgetFID(void);
staticvoidclear(void);
intmain(intargc,char*argv[])
{
char*in="in.txt";
char*out="out.txt";
intID,EID,FID;
readFromFile(in);
if(num==0)
{
printf("file:%s讀取失敗! ",in);
return0;
}
ID=getID();
EID=getEID();
FID=getFID();
writeToFile(out,ID,EID,FID);
clear();
return0;
}
voidreadFromFile(char*filename)
{
FILE*in=NULL;
in=fopen(filename,"r");
if(in!=NULL)
{
fscanf(in,"%d",&num);
dictTable=(char**)malloc(sizeof(char*)*num);
for(inti=0;i<num;i++)
{
dictTable[i]=(char*)malloc(255*sizeof(char));
fscanf(in,"%s",dictTable[i]);
}
fscanf(in,"%s",searchString);
}
if(in!=NULL)fclose(in);
}
voidwriteToFile(char*filename,intID,intEID,intFID)
{
FILE*out=NULL;
out=fopen(filename,"w");
if(out!=NULL)
{
fprintf(out,"%d E%d F%d",ID,EID,FID);
fclose(out);
}
}
intgetID(void)
{
intID=0;
for(inti=0;i<num;i++)
{
if(strcmp(dictTable[i],searchString)==0)
{
ID=i+1;
break;
}
}
returnID;
}
intgetEID(void)
{
intEID=0;
intnoMatchCount=0;
for(inti=0;i<num;i++)
{
if(strlen(dictTable[i])!=strlen(searchString))continue;
for(intj=0;j<strlen(searchString);j++)
{
if(dictTable[i][j]!=searchString[j])noMatchCount++;
}
if(noMatchCount==1)
{
EID=i+1;
break;
}
}
returnEID;
}
intgetFID(void)
{
intFID=0;
for(inti=0;i<num;i++)
{
intnoMatchCount=0;
intdictSize=strlen(dictTable[i]);
intsearchSize=strlen(searchString);
if(abs(dictSize-searchSize)!=1)continue;
if(strncmp(dictTable[i],searchString,dictSize>searchSize?searchSize:dictSize)==0)
{
FID=i+1;
break;
}
}
returnFID;
}
voidclear(void)
{
for(inti=0;i<num;i++)
{
if(dictTable[i]!=NULL)free(dictTable[i]);
}
free(dictTable);
}
G. C語言用指針編寫程序
#include<stdio.h>
#defineN5
#defineM5
voidf(inta[][M],intn,intm,int*s){inti,j;
for(i=0;i<n;i++,s++){
*s=a[i][0];for(j=1;j<m;j++)if(*s<a[i][j])*s=a[i][j];
}
}
voidmain(){inta[N][M],s[N],i,j;
for(i=0;i<N;i++)for(j=0;j<M;j++)scanf("%d",&a[i][j]);
f(a,N,M,s);
for(i=0;i<N;i++)printf("%d ",s[i]);
}
H. c語言 用指針算 詳細代碼
I. C語言指針程序
#include<stdio.h>
#include<string.h>
char
*fun(char
*s,char
*t)//函數功能是在字元串S中找字元串T
{
char
*p,*r,*a;
a=NULL;//是一個標志,開始沒查找到
//開始s=&s[0]
while(*s)//從S
的第一個字元開始查找,直到遇到'\0'
{
p=s;
r=t;
while(*r)//從T
的第一個字元開始查找,直到遇到'\0'
if(*r==*p)//如果在S字元串中找到了第一個
T字元串的T[0],
{
r++;//在比較T[1]
t[2]....
p++;//同上
}
else
break;
if
(*r=='\0')
a=s;//表明查找到了
s++;
}
return
a;//返回NULL沒到到,否則找到了
}
main()
{
char
s[100],t[100],*p;
printf("\n
please
enter
string
S:");
scanf("%s",&s);
printf("\n
please
enter
string
T:");
scanf("%s",&t);
p=fun(s,t);
if(p)//真,為找到了
printf("\n
the
result
is
:%s\n",p);
else
printf("\n
not
found!\n");
}
J. c語言指針問題,代碼如下 char *p = "tasklist"; printf("%s\n",p); printf("%c\n",*p);
注意%s是以字元串的形式輸出,從p指向的地址開始輸出,一直到遇到'\0'為止,所以printf("%s\n",p);是輸出tasklist