交換兩個陣列元素的地址可以交換它們的值嗎?
#include<stdio.h>
void SWAP(int *a,int *b)
{int *e;
e=a;
a=b;
b=e;
}
void main()
{int i;
int A[2]={0,1};
SWAP(&A[0],&A[1]);
printf("the sorted num is:\n");
for(i=0;i<2;i++)
printf("A[%d]=%2d\n",i,A[i]);
}
我們知道交換兩個整數的地址可以交換兩個整數的值。但是在陣列中我們交換兩個陣列元素的地址它的輸出結果會是A[0]=1,A[1]=0嗎?答案是否定的。
原因
陣列的實質是一段連續分配的指標,如果你定義了 int a[2]那麼變數 a 就是指向開頭的指標,a+1 即下一個,依此類推取元素值的操作 a[n] 實際上就是 *(a+n) 所以就算你真的“交換”了,a[n]的值還是不會變。
正確的程式碼
void SWAP(int *a,int *b)
{int e;
e=*a;
*a=*b;
*b=e;
}
輸出結果
相關推薦
交換兩個陣列元素的地址可以交換它們的值嗎?
#include<stdio.h> void SWAP(int *a,int *b) {int *e; e=a; a=b; b=e; } void main() {int i; int A[
交換兩個陣列的內容+求1/1-1/2+1/3...-1/100的值+1-100整數中出現9的次數
交換兩個陣列的內容: 交換兩個容量相同的整形陣列的內容: #include<stdio.h> /* 交換兩個整形陣列的內容 */ void print(int x[]) { for (int i = 0; i < 3;i++) { printf("%d "
交換兩個陣列內容
#include<stdio.h> #include<stdlib.h> main() { int arr1[4] = { 1, 2, 3, 4 }; int arr2[4] = { 5, 6 ,7, 8 }; int i=0, x; for (i =0; i <
【Python】交換兩個陣列的切片,有坑
問題描述: 交換陣列a和陣列b的前5個元素,如果用C語言思路寫,會發現有坑: a=np.zeros(10) b=np.ones(10) t=a[:5] a[:5]=b[:5] b[:5]=t a array([1., 1., 1., 1., 1., 0., 0., 0., 0., 0.]
C語言中交換兩個陣列的值
昨天我們做了交換兩個變數的值,今天我們來看看如何交換兩個陣列的值(陣列內數的個數相同)。 我們可以這樣考慮,陣列不過是數的集合,既然我們會交換兩個數的值,那麼陣列只不過是多次交換兩個數的值,而且陣列內素下標又是依次增大的,所以這裡可以使用一個for迴圈。
java中交換兩個陣列
在java中,由於無法傳引用,因此我們無法通過和c++一樣的方式進行傳引用實現交換,因此,這裡我選擇交換完之後返回一個數組,這樣就能實現交換了 public static String[] swap(String a,String b){ String t=
leetcode之兩個陣列元素相同還是不同
//思路:先掃描鍵盤輸入資料,第一行為str1,第二行為str2, //當輸入資料時,呼叫isContain(str1,str2)方法 //for迴圈比較str.charAt(i)是否相等 import java.util.*; public class Solution {
根據兩個陣列元素個數一樣,元素一樣,那麼兩個陣列一樣,寫一個實現。
OK!實現,實現,實現。Method1:抓住兩個陣列比較的核心,A陣列每個元素與B陣列中元素依次進行比較,分為3(array.length)輪,在兩個陣列長度相等的情況下,只要任意一輪全匹配不上,那麼兩個陣列不一樣。public static void main(Strin
JS 陣列去重,對比兩個陣列之間有相同的值或物件就刪除
建立了兩個陣列,並且封裝了一個函式以供呼叫。 var arr1 = [a,b,c,d],arr2 = [a,c,d,f]; this.arrayWeightRemoval(arr1,arr2); //返回結果 [b,f] ; // 資料去重 this.arrayWeightRem
華為面試題(8分鐘寫出程式碼) 有兩個陣列a,b,大小都為n,陣列元素的值任意,無序; 要求:通過交換a,b中的元素,使陣列a元素的和與陣列b元素的和之間的差最小
先上程式碼 java程式碼: public class MinDiff { public static void main(String[] args){ int[] aa={2,5,4,3,1,0}; int[] bb={7,9,8,10,6,11}
陣列的冒號排序法,兩個陣列內容的互換,兩個變數之間的交換
兩個變數之間的交換,通過查閱資料,有如下四種常見方法: 1.利用一箇中間變數實現交換 int a, b; int temp; temp = a; a = b; b = temp; 2.利用+-操作實現 int a, b; //a = 1 &
用c語言實現兩個陣列中的內容進行交換。(陣列一樣大)
方法一:建立新的陣列。 #include<stdio.h> #include<stdlib.h> int main() { int arr1[5] = { 1, 2, 3, 4, 5, }; int arr2[5] = { 0, 6, 7, 8, 9, }
【日常練習】將兩個陣列的值進行交換;求分子為1正負交替分母加絕對值1的分數相加和;輸出1~100之間數字末尾為9的數字
#include<stdio.h> #include<stdlib.h> #include<string.h> #include<math.h> 將陣列a的內容和陣列b的內容進行交換(陣列一樣大) int main() { i
【BUG】交換兩個元素的時候遇到的坑!
交換元素的方式無非有這麼三種: //愚蠢且多空間的中間量法 temp = a; a = b; b = temp; //異或法 a = a^b; b = a^b; a = a^b; //
jquery交換兩個元素之間的位置
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <TITLE> New Document </TITLE> &
p62 練習3.3 通過只調整指標(而不是資料)來交換兩個相鄰的元素,使用:
由於兩種資料結構的結點結構體都較為簡單,這裡就不列出了 a.單鏈表 List creatList1(List T,int n) //建立單鏈表 (頭插法) { int x;Position S; T = new struct Node; T->Next = NULL;
關於通過異或交換兩個元素的值的一個陷阱
#include <stdio.h> #include <iostream> using namespace std; void swap(int *a,int *b){ *a = *a ^ *b; *b = *a ^ *b;//將a的值賦給了
js 交換兩個元素的位置,動畫效果
今天做了個 兩個元素互換位置 的動畫 ,記錄一下 首先 獲得兩個元素得絕對座標定位 然後通過animation 實現移動 其他效果 按自己喜好新增 (function($){ $.extend({ animationExchange:function(srcObj,des
JavaSE7基礎 交換兩個變量的數值 巧妙的代碼
學習 程序 技術分享 註意 我會 思考 ase com 編輯器 jdk版本 :jdk-7u72-windows-i586系統 :Windows7編輯器 :Notepad++ v7.4.2註意事項 :博文內容僅供參考,不可用於其他用途。 代碼 clas
交換兩個局部變量Integer的值
sys mem spa stat red cep java語言 odi integer 反射是很強大的,誰說的final修飾的就不能改變, 通過反射獲取成員變量,之後可以取消訪問修飾符,也就是說private的也可以訪問, 在修改常量(final修飾的),之後就可以對其做任