c語言指針數組的輸入
1. c語言指針輸入
#include<stdio.h>
int main()
{
int a,b,c,s[3],t;
int *x,*y,*z;//定義指針變數
x=&a;//將a的地址賦給指針x,下同
y=&b;
z=&c;
scanf("%d%d%d",x,y,z);
s[0]=*x;//將指針x所指向的變數值賦給數組s的第一個元素;依次類推
s[1]=*y;
s[2]=*z;
for(int i=0;i<3;i++)//冒泡排序
for(int j=0;j<3-i-1;j++)
if(s[j]<s[j+1])
{
t=s[j];
s[j]=s[j+1];
s[j+1]=t;
}
for(int i=0;i<3;i++)
printf("%d ",s[i]);
return 0;
}
2. c語言中將字元串用指針數組輸入輸出..
首先確定是字元指針數組還是字元數組指針,前者是一個數組,數組每個元素都是一個字元指針,後者是一個指向字元數組的指針。
若是指向字元數組的指針,則很簡單,使用scanf("%s",
str);函數獲取輸入的字元串,然後使用字元串拷貝函數strcpy(stc,
dest);將獲取的字元串拷貝到指定地址的字元指針數組中,拷貝過程中注意檢查訪問數組是否越界,若越界,則需要在字元數組的最後一個元素賦值為結束符'\0'。
若是賦值
字元指針數組,那麼就是對數組中的某一個元素指向的字元數組進行拷貝賦值,其過程與前者相同。
3. C語言字元指針怎麼輸入謝謝
可以參考下面的代碼:
#include <stdio.h>
#include <string.h> // 要用尖括弧
intmain()
{
char*str;
str = (char*)malloc(sizeof(char) * 20); // 申請20個char長度的空間
scanf("%s", str); //輸入
printf("%s ", str); // 輸出
free(str); // 釋放空間
return0;
}
(3)c語言指針數組的輸入擴展閱讀:
字元指針注意事項:
在字元指針中p是指針變數指向字元串首元素(前提對p指針沒有進行指針操作),p中存放首元素的地址(一旦被初始化就,系統就為我們分配好了地址,而且地址也不能改變,因為字元指針是一個只讀變數,不能企圖對一個初始化好的指針進行內部修改)
而*p是對指針變數p進行解引用操作,也就是指針所指向的內容,而&p是對指針變數取地址,所以也就肯定不會和p的值相等,因為字元指針系統會為其分配內存,p的值是字元串首元素的地址。
4. C語言程序設計:設計利用指針與下標分別實現數組元素的輸入與輸出的所有可能方法
假設一個一維數組a
a[0]表示第一個數
用指針就是*a
同理a[1]和*(a+1)一個意思
表示就這么表示 用的話等同
5. c語言 指針輸入
看來樓主沒有理解指針必須要初始化這一定律啊。
char
*str;
str="l
love
china";
指針
str
是指向字元的,也就是指向了一個地址
賦值為str="l
love
china"
這里指針str的值也就是字元串
"l
love
china"
的首地址
而輸出的時候puts(str);
puts中的參數當然也是首地址了,如果puts的參數是字元數組,那實際上也是地址,因為數組的名字就是數組第一個元素的地址。當地址是字元串的地址時,指針會自動下移一個位置。直到遇到'\0'為止
而下面這個
char
*str;
scanf("%s",str);
指針沒有初始化,所以是不對滴。
其實在c語言中想要動態輸入字元串(也就是不浪費空間,還是很麻煩的),直到怎麼回事就行,不必太糾結這個問題
6. C語言輸入字元型指針數組怎麼輸
*p[10],具有10個字元指針的數組,先要存在具體地址,否則是野指針,發生錯誤
#include "stdio.h"
#include "stdlib.h"
main()
{
char *p[10],*temp;
int i,j,k;
for(i=0;i<10;i++)
{
p[i]=(char*)malloc(sizeof(char)*50);//開辟內存
}
for(i=0;i<10;i++)
{
printf("輸入第%d本書的書名\n",i+1);
gets(p[i]);
}
for(i=0;i<10;i++)
{
printf("%s\n",p[i]);
}
}
7. C語言編程:用指針表示法給一維數組元素輸入值,輸出各元素的值及元素之和
#include <stdio.h>
int main()
{
int a[6],i,sum,*p;
printf("Please input data of a[6]: ");
for(i=0,p=a;i<6;++i)
scanf("%d",p++);
printf("Output arry: ");
for(i=0,sum=0,p=a;i<6;++i)
{
printf("%d ",*p);
sum+=*p++;
}
printf(" s=%d ",sum);
return 0;
}
8. C語言如何輸入一個數組
1、輸入數組需要使用指針獲取地址後,就能對得到的數組就行操作了。首先打開DEV C++軟體,新建一個空白的C語言文件:
9. C語言函數用指針輸入數組元素,對嗎
如下提示供參考:
int ddata[20]是 scanfArr函數內部定義的,是局部變數,上面 arr = ddata,導致scanf輸入的數組元素會保存到 局部變數 數組中,並無意義。
從問題描述,提供以下代碼供參考:
#include<stdio.h>
voidscanfArr(int*arr,intn)
{
inti;
printf("請輸入5個數(以回車鍵結束): ");
for(i=0;i<n;i++,arr++)
scanf("%d",arr);
}
voidmain()
{
inti,ddata[5];
scanfArr(ddata,5);
printf("輸入的數組如下: ");
for(i=0;i<5;i++)
{
printf("[%d]:%d ",i,ddata[i]);
}
}
運行截圖:
10. c語言指針數組的輸入
要使用指針就必須讓指針指向有效的地址。
你在程序中char *str[5];處聲明了5個指針,但是這些指針並沒有指向有效的地址,所以它們是非法的,不能直接使用,否則就會出現非法訪問的錯誤。
你可以像下邊這樣做:
#include <stdio.h>
main()
{
char str[5][80];
int i;
for(i=0;i<5;i++)
gets(str[i]);
for(i=0;i<5;i++)
puts(str[i]);
return 0;
}